package com.styletransfer.model;

import java.util.Date;

/**
 * 风格实体类
 * 
 * 这个类对应数据库中的style表，用于存储风格的基本信息。
 * 每个属性都与数据库表中的列相对应。
 */
public class Style {
    
    private Long id;             // 风格ID，主键
    private String name;         // 风格名称
    private String description;  // 风格描述
    private String coverImage;   // 封面图片URL
    private String previewImage; // 预览图片URL
    private Long creatorId;      // 创建者ID
    private Integer type;        // 风格类型：1-官方，2-用户创建
    private Long category;       // 风格分类ID，关联style_category表的id字段
    private Integer useCount;    // 使用次数
    private Integer likeCount;   // 点赞数
    private Integer favoriteCount; // 收藏数
    private Date createTime;     // 创建时间
    private Date updateTime;     // 更新时间
    private Integer status;      // 状态：0-禁用，1-正常
    
    // 构造函数
    public Style() {
    }
    
    // Getters and Setters
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public String getCoverImage() {
        return coverImage;
    }
    
    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }
    
    public String getPreviewImage() {
        return previewImage;
    }
    
    public void setPreviewImage(String previewImage) {
        this.previewImage = previewImage;
    }
    
    public Long getCreatorId() {
        return creatorId;
    }
    
    public void setCreatorId(Long creatorId) {
        this.creatorId = creatorId;
    }
    
    public Integer getType() {
        return type;
    }
    
    public void setType(Integer type) {
        this.type = type;
    }
    
    public Long getCategory() {
        return category;
    }
    
    public void setCategory(Long category) {
        this.category = category;
    }
    
    public Integer getUseCount() {
        return useCount;
    }
    
    public void setUseCount(Integer useCount) {
        this.useCount = useCount;
    }
    
    public Integer getLikeCount() {
        return likeCount;
    }
    
    public void setLikeCount(Integer likeCount) {
        this.likeCount = likeCount;
    }
    
    public Integer getFavoriteCount() {
        return favoriteCount;
    }
    
    public void setFavoriteCount(Integer favoriteCount) {
        this.favoriteCount = favoriteCount;
    }
    
    public Date getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    public Date getUpdateTime() {
        return updateTime;
    }
    
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    public Integer getStatus() {
        return status;
    }
    
    public void setStatus(Integer status) {
        this.status = status;
    }
    
    @Override
    public String toString() {
        return "Style{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", type=" + type +
                ", category=" + category +
                ", useCount=" + useCount +
                ", likeCount=" + likeCount +
                ", favoriteCount=" + favoriteCount +
                ", status=" + status +
                '}';
    }
}
